#ifndef PARAMS_H_
#define PARAMS_H_

#include "stopcond.h"
#include "message.h"
#include <cstring>
#include <cstdlib>



using namespace std;



class Parameters {
private:
	int do_compress;
	int do_decompress;
	int has_error;
	
	StopCondition* stop;
	Message* message;

	char *infile;
	char *outfile;

	// flags
	int	verbose;
	int color;
	
	// argument index
	int index;

	
public:
	// ctor/main function
	Parameters(Message* msg);
	void analyseComandLine(int argc, char** argv);
	
	// compress/decompress
	int mustDecompress();
	int mustCompress();
	
	// get file names
	const char* getInputFilename();
	const char* getOutputFilename();
	
	// get verbose and color settings
	int getVerbose();
	int getColor();
	// color must be set by the engine when decompressing an existing neural
	// network compressed file
	void setColor(int value);
	
	// get stop condition
	StopCondition* getStopCondition();
	
	// errors were encountered?
	int hasErrors();
};


#endif /*PARAMS_H_*/
